package editorsvg.propiedades.tabla;

import editorsvg.propiedades.DefinicionPropiedades;
import editorsvg.propiedades.GrupoPropiedades;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

/**
 * Panel para edición de una lista de grupos de propiedades.
 * Contiene un titulo y una tabla por cada grupo. Haciendo click en el título
 * se oculta o muetra la tabla.
 *
 * @author  Jorge Berjano
 */
public class PanelTablaPropiedades extends javax.swing.JPanel {

    private JPanel panelInterior;

    /** Constructor */
    public PanelTablaPropiedades() {
        initComponents();
        inicializar();
    }

    private void inicializar() {

        setLayout(new java.awt.BorderLayout());

        panelInterior = new javax.swing.JPanel();
        panelInterior.setLayout(new javax.swing.BoxLayout(panelInterior, javax.swing.BoxLayout.PAGE_AXIS));

        JScrollPane scroll = new javax.swing.JScrollPane();
        scroll.setViewportView(panelInterior);
        add(scroll, java.awt.BorderLayout.CENTER);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        setLayout(null);
    }// </editor-fold>//GEN-END:initComponents

    // Variables declaration - do not modify//GEN-BEGIN:variables
    // End of variables declaration//GEN-END:variables

    public void setPropiedades(DefinicionPropiedades propiedades) {
        panelInterior.removeAll();
        if (propiedades == null) {
            validate();
            repaint();
            return;
        }
        for (GrupoPropiedades grupoPropiedades : propiedades.getGrupos()) {
            PanelTablaGrupo panel = new PanelTablaGrupo(grupoPropiedades);
            panel.setMaximumSize(new Dimension(Integer.MAX_VALUE, 100));
            panelInterior.add(panel);
        }
        panelInterior.add(Box.createVerticalGlue());
        validate();
        repaint();
    }
}
